<?php
/**
 * Model de DetalleDato.
 *
 *
 * @filesource          
 * @copyright		
 * @link		http://www.pragmatia.com Pragmatia
 * @package		datagro
 * @subpackage	app.models
 * @version     1.1
 * @license		http://www.opensource.org/licenses/mit-license.php The MIT License
 * @author      Martin Radosta <mradosta@pragmatia.com>
 */


/**
 * Clase DatosDetalle
 *
 * @package	    datagro
 * @subpackage	app.models
 */
class DetalleDato extends AppModel
{ 
    var $name = 'DetalleDato';
    var $unique = array("dato_id", "identificador");

    var $belongsTo = array(	'Dato' =>
                         array('className'   => 'Dato',
                               'conditions'  => '',
                               'order'       => '',
                               'limit'       => '',
                               'foreignKey'  => 'dato_id',
                               'dependent'   => true,
                               'exclusive'   => false,
                               'finderSql'   => ''
                         ),
							'Parametro' =>
                         array('className'   => 'Parametro',
                               'conditions'  => '',
                               'order'       => '',
                               'limit'       => '',
                               'foreignKey'  => 'parametro_id',
                               'dependent'   => true,
                               'exclusive'   => false,
                               'finderSql'   => ''));
    

    function getArbol($filtros = null) {
    	if(empty($filtros)) {
    		return array();
    	}
    	
    	foreach($filtros as $k=>$v) {
    		$condiciones[] = $k . " " . $v;
    	}
    	$filtro = " AND " . preg_replace("/desde|hasta/", "fecha", (implode(" AND ", $condiciones))) . " ";
    	$sql = "SELECT 	DetalleDato.id,
    					DetalleDato.dato_id,
    					DetalleDato.encabezado_dato_id,
    					DetalleDato.origen,
    					DetalleDato.identificador,
    					DetalleDato.valor,
    					Dato.id,
    					Dato.tipo,
    					Dato.secuencia,
    					Dato.validacion,
    					Dato.fecha_hora_recepcion,
    					Dato.registro,
    					Dato.sim_id
    		FROM 		detalle_datos AS DetalleDato,
    					datos AS Dato
    		WHERE 		DetalleDato.origen = 'E'
    		AND			DetalleDato.dato_id = Dato.id
    		AND 		DetalleDato.identificador IN ('R', 'S', 'U', 'T', 'W', 'V')"
    		. $filtro .
    		"ORDER BY 	Dato.fecha_hora_recepcion ASC,
    					Dato.id ASC,
    					CASE DetalleDato.identificador
    						WHEN 'R' THEN 10
    						WHEN 'S' THEN 8
    						WHEN 'U' THEN 6
    						WHEN 'W' THEN 4
    						WHEN 'V' THEN 2
    						WHEN 'T' THEN 0
    					END DESC";

		//d($sql);
		//d($this->query($sql));
    	return $this->query($sql);
    }
} 
?>